package org.jeecg.demo.wx.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(description = "单一任务查询返回对象")
public class OneTaskVO {
    /**企业日历任务表Id*/
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "企业日历任务表Id")
    private Integer id;
    /**用户id*/
    @Excel(name = "用户id", width = 15)
    @ApiModelProperty(value = "用户id")
    private String userId;
    /**用户名称*/
    @Excel(name = "用户名称", width = 15)
    @ApiModelProperty(value = "用户名称")
    private String userName;
    /**部门id*/
    @Excel(name = "部门id", width = 15)
    @ApiModelProperty(value = "部门id")
    private String depId;
    /**部门名称*/
    @Excel(name = "部门名称", width = 15)
    @ApiModelProperty(value = "部门名称")
    private String depName;
    /**标题*/
    @Excel(name = "标题", width = 15)
    @ApiModelProperty(value = "标题")
    private String title;
    /**内容*/
    @Excel(name = "内容", width = 15)
    @ApiModelProperty(value = "内容")
    private String content;
    /**类型*/
    @Excel(name = "类型", width = 15)
    @ApiModelProperty(value = "类型")
    private String taskType;
    /**紧急等级 10-一般；20-重要*/
    @Excel(name = "紧急等级", width = 15)
    @ApiModelProperty(value = "紧急等级")
    @Dict(dicCode = "urgent_level")
    private String level;
    /**开始时间*/
    @Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    private Date beginTime;
    /**结束时间*/
    @Excel(name = "结束时间", width = 15, format = "yyyy-MM-dd HH:mm")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;
    /**接收成员Id*/
    @Excel(name = "接收成员Id", width = 15)
    @ApiModelProperty(value = "接收成员Id")
    private String recipientId;
    /**接收成员名称*/
    @Excel(name = "接收成员名称", width = 15)
    @ApiModelProperty(value = "接收成员名称")
    private String recipientName;
    /**接收成员任务id*/
    @Excel(name = "接收成员任务id*", width = 15)
    @ApiModelProperty(value = "接收成员任务id*")
    private String recipientTaskId;
    /**是否重复 0-否；1-是*/
    @Excel(name = "是否重复 0-否；1-是", width = 15)
    @ApiModelProperty(value = "是否重复 0-否；1-是")
    @Dict(dicCode = "yn")
    private String isRepeat;
    /**跳过节假日 0-否；1-是*/
    @Excel(name = "跳过节假日 0-否；1-是", width = 15)
    @ApiModelProperty(value = "跳过节假日 0-否；1-是")
    @Dict(dicCode = "yn")
    private String isHoliday;
    /**跳过周末 0-否；1-是*/
    @Excel(name = "跳过周末 0-否；1-是", width = 15)
    @ApiModelProperty(value = "跳过周末 0-否；1-是")
    @Dict(dicCode = "yn")
    private String isWeekend;
    /**附件*/
    @Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String document;

    /**文件名称*/
    @Excel(name = "文件名称", width = 15)
    @ApiModelProperty(value = "文件名称")
    private String fileName;
    /**文件路径*/
    @Excel(name = "文件路径", width = 15)
    @ApiModelProperty(value = "文件路径")
    private String filePath;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty(value = "成员完成情况")
    Map<String, List<UserCompleteVO>> userMap;
}
